#include <stdlib.h>
#include <stdio.h>
#include "TD_terrain.h"
#include "TD_editeur.h"
#include "TD_moteur2D.h"
#include "Menu.h"
#include "TD_joueur.h"
#include "TD_moteur_jeu.h"
#include <string.h>



menu *init_menu()
{
        menu * Menu = NULL;
        Menu = (menu*) malloc (sizeof(menu));
        if ( Menu == NULL )
        {
             fprintf(stderr,"module Menu, init_menu : Erreur d'allocation mémoire");
             exit(EXIT_FAILURE);
        }
        Menu->id_menu = 0;
        Menu->souris_abscisse = 0;
        Menu->souris_ordonnee = 0;
        return Menu;
}


void lancer_menu (moteur2D *Moteur2D)
{
    unsigned char sortir = 0;
    unsigned char choix = 0;
    while (!sortir)
    {
        choix = afficher_menu_principal(Moteur2D);
        switch (choix)
        {
            case 0 : sortir = 1;
            break;

            case 1 : menu_un_joueur(Moteur2D);
            break;

            case 2 : //multijoueur
            break;

            case 3 : menu_editeur(Moteur2D);
            break;

            case 4 : //menu des options
            break;

            default : fprintf(stderr,"Erreur de valeur retour dans le module Menu : fonction lancer_menu a reçu %d",choix);
            break;
        }

    }

}


void menu_editeur (moteur2D *Moteur2D)
{
    char noms[NOMBRE_CARTE_AFFICHABLE][100];
    editeur *Editeur = NULL;
    terrain *Terrain = NULL;
    Editeur = init_editeur(20);
    Terrain = init_terrain("");
    int carte_en_cours = 0;
    int i = 0 , taille = 0;

    lister_cartes(Editeur);


    strcpy(noms[0],"Precedente");
    for (i=1 ; i<35 ; i++)
    {
        strcpy(noms[i] , "");
    }
    strcpy (noms[35] , "Suivante");
    i = 1;
    while (carte_en_cours < get_nombre_cartes(Editeur) && i < 35)
    {
        strncpy(noms[i],Editeur->cartes[i-1],99);
        taille = strlen(noms[i]);
        noms[i][taille-1] = '\0';
        i++;
        carte_en_cours++;
    }
    Terrain = init_terrain_fichier ( "hey(4).map" ) ;
    afficher_menu_editeur(Moteur2D,noms,Terrain);
    lancer_editeur(Editeur,Moteur2D);
}


void menu_un_joueur (moteur2D *Moteur2D)
{
    joueur *Joueur = NULL;
    Joueur = creer_joueur(1,10);
    lancer_jeu("hey(4).map",Joueur,Moteur2D);
}




